import store from '@/store'

/**
 * 字符权限校验
 * @param {Array} value 校验值
 * @returns {Boolean}
 */
export function checkPermi (value) {
  if (typeof value === 'string') {
    value = value.split(',')
  }
  if (value && value instanceof Array && value.length > 0) {
    const permissions = store.getters && store.getters.roles && store.getters.roles.permissions
    const permissionDatas = value
    // console.log(permissions)
    const hasPermission = permissions.some(permission => {
      if (permission !== '*:*:*') {
        return permissionDatas.includes(permission)
      } else {
        return true
      }
    })
    if (!hasPermission) {
      return false
    }
    return true
  } else {
    // console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`)
    return false
  }
}

/**
 * 角色权限校验
 * @param {Array} value 校验值
 * @returns {Boolean}
 */
export function checkRole (value) {
  if (value && value instanceof Array && value.length > 0) {
    const roles = store.getters && store.getters.roles
    const permissionRoles = value

    const hasRole = roles.some(role => {
      return permissionRoles.includes(role)
    })

    if (!hasRole) {
      return false
    }
    return true
  } else {
    console.error(`need roles! Like checkRole="['admin','editor']"`)
    return false
  }
}

export function actionToObject (json) {
  try {
    return JSON.parse(json)
  } catch (e) {
    console.log('err', e.message)
  }
  return []
}
